package com.gxjtkyy.datadistributer.writer.rdbms.vo;

import java.util.Map;
import java.util.Set;

public class TableMetaData {
   private String tableName;
   private Set<String> keyColumnNames;
   private Set<String> otherColumnNames;
   private Set<String> allColumnNames;
   private Map<String, String> columnTypes;

   public String getTableName() {
      return this.tableName;
   }

   public Set<String> getKeyColumnNames() {
      return this.keyColumnNames;
   }

   public Set<String> getOtherColumnNames() {
      return this.otherColumnNames;
   }

   public Set<String> getAllColumnNames() {
      return this.allColumnNames;
   }

   public Map<String, String> getColumnTypes() {
      return this.columnTypes;
   }

   public void setTableName(final String tableName) {
      this.tableName = tableName;
   }

   public void setKeyColumnNames(final Set<String> keyColumnNames) {
      this.keyColumnNames = keyColumnNames;
   }

   public void setOtherColumnNames(final Set<String> otherColumnNames) {
      this.otherColumnNames = otherColumnNames;
   }

   public void setAllColumnNames(final Set<String> allColumnNames) {
      this.allColumnNames = allColumnNames;
   }

   public void setColumnTypes(final Map<String, String> columnTypes) {
      this.columnTypes = columnTypes;
   }

   public boolean equals(final Object o) {
      if (o == this) {
         return true;
      } else if (!(o instanceof TableMetaData)) {
         return false;
      } else {
         TableMetaData other = (TableMetaData)o;
         if (!other.canEqual(this)) {
            return false;
         } else {
            label71: {
               Object this$tableName = this.getTableName();
               Object other$tableName = other.getTableName();
               if (this$tableName == null) {
                  if (other$tableName == null) {
                     break label71;
                  }
               } else if (this$tableName.equals(other$tableName)) {
                  break label71;
               }

               return false;
            }

            Object this$keyColumnNames = this.getKeyColumnNames();
            Object other$keyColumnNames = other.getKeyColumnNames();
            if (this$keyColumnNames == null) {
               if (other$keyColumnNames != null) {
                  return false;
               }
            } else if (!this$keyColumnNames.equals(other$keyColumnNames)) {
               return false;
            }

            label57: {
               Object this$otherColumnNames = this.getOtherColumnNames();
               Object other$otherColumnNames = other.getOtherColumnNames();
               if (this$otherColumnNames == null) {
                  if (other$otherColumnNames == null) {
                     break label57;
                  }
               } else if (this$otherColumnNames.equals(other$otherColumnNames)) {
                  break label57;
               }

               return false;
            }

            Object this$allColumnNames = this.getAllColumnNames();
            Object other$allColumnNames = other.getAllColumnNames();
            if (this$allColumnNames == null) {
               if (other$allColumnNames != null) {
                  return false;
               }
            } else if (!this$allColumnNames.equals(other$allColumnNames)) {
               return false;
            }

            Object this$columnTypes = this.getColumnTypes();
            Object other$columnTypes = other.getColumnTypes();
            if (this$columnTypes == null) {
               if (other$columnTypes == null) {
                  return true;
               }
            } else if (this$columnTypes.equals(other$columnTypes)) {
               return true;
            }

            return false;
         }
      }
   }

   protected boolean canEqual(final Object other) {
      return other instanceof TableMetaData;
   }

   public int hashCode() {
//      int PRIME = true;
      int result = 1;
      Object $tableName = this.getTableName();
      result = result * 59 + ($tableName == null ? 43 : $tableName.hashCode());
      Object $keyColumnNames = this.getKeyColumnNames();
      result = result * 59 + ($keyColumnNames == null ? 43 : $keyColumnNames.hashCode());
      Object $otherColumnNames = this.getOtherColumnNames();
      result = result * 59 + ($otherColumnNames == null ? 43 : $otherColumnNames.hashCode());
      Object $allColumnNames = this.getAllColumnNames();
      result = result * 59 + ($allColumnNames == null ? 43 : $allColumnNames.hashCode());
      Object $columnTypes = this.getColumnTypes();
      result = result * 59 + ($columnTypes == null ? 43 : $columnTypes.hashCode());
      return result;
   }

   public String toString() {
      String var10000 = this.getTableName();
      return "TableMetaData(tableName=" + var10000 + ", keyColumnNames=" + this.getKeyColumnNames() + ", otherColumnNames=" + this.getOtherColumnNames() + ", allColumnNames=" + this.getAllColumnNames() + ", columnTypes=" + this.getColumnTypes() + ")";
   }
}
